<?php

namespace Admin\Controller;

/**
 * 报修控制器
 * @author 张玉腾 <zhangyuteng1029@163.com
 */
class RepairController extends AdminController {

	public function index(){
		$Repair = D('Repair');
		$lists = $Repair->select();
		$this->display('index');
	}

	public function addRepair(){

		$this->display('addRepair');
	}

	/**
	 * 服务区域管理
	 * @return [type] [description]
	 */
	public function area(){
		$ServiceArea = D("ServiceArea");
		$field = "id,pid,areaname,remark,sort,status";
		$where = array('status'=>0);
		$lists = $ServiceArea->field($field)->where($where)->order('sort ASC,id ASC')->select();
		$lists = list_to_tree($lists);
		$this->assign('lists', $lists);
		$this->display('area');
	}

	/**
	 * 添加服务区域页
	 */
	public function addArea(){
		$id = (int)I('get.id', 0, 'trim');

		if($id == 0){
			$this->assign('metaTitle', '添加服务区域');
		}else{
			$this->assign('metaTitle', '添加楼宇');
		}
		$this->assign('pid', $id);
		$this->display('addArea');
	}

	/**
	 * 修改服务区域页
	 * @return [type] [description]
	 */
	public function editArea(){
		$id = (int)I('get.id', 0, 'trim');
		if(empty($id)){
			$this->error('参数错误');
		}
		//获取要修改区域的详细信息
		$ServiceArea = D("ServiceArea");
		$field = "id,pid,areaname,sort,status";
		$where = array('id'=>$id);
		$info = $ServiceArea->field($field)->where($where)->find();
		if(empty($info)){
			$this->error('区域不存在!');
		}
		$this->assign('info', $info);
		$this->display('editArea');
	}

	/**
	 * ajax更新或添加服务区域
	 * @return [type] [description]
	 */
	public function updateArea(){
		if(IS_POST){
			$ServiceArea = D('ServiceArea');
			if($ServiceArea->create()){
				if(empty(I('post.id'))){
					$result = $ServiceArea->add();
				}else{
					$result = $ServiceArea->where(array('id'=>I('post.id')))->save();
				}
				if($result !== false){
					$this->success('操作成功', U('Repair/area'));
				}else{
					$this->error('数据库错误，请稍后重试~~');
				}
			}else{
				$this->error($ServiceArea->getError());
			}
		}else{
			$this->error('404：页面不存在');
		}
	}

	/**
	 * 删除服务区域
	 * @return [type] [description]
	 */
	public function deleteArea(){
		$id = (int)I('get.id', 0, 'trim');
		if(empty($id)){
			$this->error('参数错误');
		}
		$ServiceArea = D("ServiceArea");
		//检查是否存在子区域，若存在，提示删除子区域后才能删除该区域
		$child = $ServiceArea->where(array('pid'=>$id))->select();
		if(!empty($child)){
			$this->error('该服务区域下存在楼宇，请将楼宇删除后再删除该区域');
		}
		$result = $ServiceArea->where(array('id'=>$id))->delete();
		if($result !== false){
			$this->success('删除成功', U('Repair/area'));
		}else{
			$this->error('数据库错误，请稍后重试~~');
		}
	}

	/**
	 * 服务中心管理
	 * @return [type] [description]
	 */
	public function center(){
		$ServiceArea = D("ServiceCenter");
		$field = "id,pid,centername,phone,remark,sort,status";
		$where = array('status'=>0);
		$lists = $ServiceArea->field($field)->where($where)->order('sort ASC,id ASC')->select();
		$lists = list_to_tree($lists);
		$this->assign('lists', $lists);
		$this->display('center');
	}

	/**
	 * 添加服务中心和人员页面
	 */
	public function addCenter(){
		$id = (int)I('get.id', 0, 'trim');

		if($id == 0){
			$this->assign('metaTitle', '添加服务中心');
		}else{
			$this->assign('metaTitle', '添加工作人员');
		}
		$this->assign('pid', $id);
		$this->display('addCenter');
	}

	/**
	 * 编辑服务中心和人员页面
	 * @return [type] [description]
	 */
	public function editCenter(){
		$id = (int)I('get.id', 0, 'trim');
		if(empty($id)){
			$this->error('参数错误');
		}
		//获取要修改的详细信息
		$ServiceCenter = D("ServiceCenter");
		$field = "id,pid,centername,phone,sort,status";
		$where = array('id'=>$id);
		$info = $ServiceCenter->field($field)->where($where)->find();
		if(empty($info)){
			$this->error('数据不存在!');
		}
		$this->assign('info', $info);
		$this->display('editCenter');
	}

	/**
	 * ajax更新或添加服务中心
	 * @return [type] [description]
	 */
	public function updateCenter(){
		if(IS_POST){
			$ServiceCenter = D('ServiceCenter');
			if($ServiceCenter->create()){
				if(empty(I('post.id'))){
					$result = $ServiceCenter->add();
				}else{
					$result = $ServiceCenter->where(array('id'=>I('post.id')))->save();
				}
				if($result !== false){
					$this->success('操作成功', U('Repair/center'));
				}else{
					$this->error('数据库错误，请稍后重试~~');
				}
			}else{
				$this->error($ServiceCenter->getError());
			}
		}else{
			$this->error('404：页面不存在');
		}
	}

	/**
	 * 删除服务中心或人员
	 * @return [type] [description]
	 */
	public function deleteCenter(){
		$id = (int)I('get.id', 0, 'trim');
		if(empty($id)){
			$this->error('参数错误');
		}
		$ServiceCenter = D("ServiceCenter");
		//检查是否存在子区域，若存在，提示删除子区域后才能删除该区域
		$child = $ServiceCenter->where(array('pid'=>$id))->select();
		if(!empty($child)){
			$this->error('该服务项目下存在工作人员，请将工作人员删除后再删除该中心');
		}
		$result = $ServiceCenter->where(array('id'=>$id))->delete();
		if($result !== false){
			$this->success('删除成功', U('Repair/center'));
		}else{
			$this->error('数据库错误，请稍后重试~~');
		}
	}

	/**
	 * 服务项目管理
	 * @return [type] [description]
	 */
	public function item(){
		$ServiceItem = D("ServiceItem");
		$field = "id,pid,itemname,remark,sort,status";
		$where = array('status'=>0);
		$lists = $ServiceItem->field($field)->where($where)->order('sort ASC,id ASC')->select();
		$lists = list_to_tree($lists);
		$this->assign('lists', $lists);
		$this->display('item');
	}


	/**
	 * 添加服务中心和人员页面
	 */
	public function addItem(){
		$id = (int)I('get.id', 0, 'trim');

		if($id == 0){
			$this->assign('metaTitle', '添加服务项目');
		}else{
			$this->assign('metaTitle', '添加服务子项目');
		}
		$this->assign('pid', $id);
		$this->display('addItem');
	}

	/**
	 * 编辑服务中心和人员页面
	 * @return [type] [description]
	 */
	public function editItem(){
		$id = (int)I('get.id', 0, 'trim');
		if(empty($id)){
			$this->error('参数错误');
		}
		//获取要修改的详细信息
		$ServiceItem = D("ServiceItem");
		$field = "id,pid,itemname,sort,status";
		$where = array('id'=>$id);
		$info = $ServiceItem->field($field)->where($where)->find();
		if(empty($info)){
			$this->error('数据不存在!');
		}
		$this->assign('info', $info);
		$this->display('editItem');
	}

	/**
	 * ajax更新或添加服务中心
	 * @return [type] [description]
	 */
	public function updateItem(){
		if(IS_POST){
			$ServiceItem = D('ServiceItem');
			if($ServiceItem->create()){
				if(empty(I('post.id'))){
					$result = $ServiceItem->add();
				}else{
					$result = $ServiceItem->where(array('id'=>I('post.id')))->save();
				}
				if($result !== false){
					$this->success('操作成功', U('Repair/item'));
				}else{
					$this->error('数据库错误，请稍后重试~~'.$ServiceItem->getLastSql());
				}
			}else{
				$this->error($ServiceItem->getError());
			}
		}else{
			$this->error('404：页面不存在');
		}
	}

	/**
	 * 删除服务中心或人员
	 * @return [type] [description]
	 */
	public function deleteItem(){
		$id = (int)I('get.id', 0, 'trim');
		if(empty($id)){
			$this->error('参数错误');
		}
		$ServiceItem = D("ServiceItem");
		//检查是否存在子区域，若存在，提示删除子区域后才能删除该区域
		$child = $ServiceItem->where(array('pid'=>$id))->select();
		if(!empty($child)){
			$this->error('该服务项目下存在子项目，请将子项目删除后再删除该服务项目');
		}
		$result = $ServiceItem->where(array('id'=>$id))->delete();
		if($result !== false){
			$this->success('删除成功', U('Repair/item'));
		}else{
			$this->error('数据库错误，请稍后重试~~');
		}
	}	
}